package com.solution.admin.area.dao;

import java.util.List;
import java.util.Map;

import com.solution.admin.area.entity.AreaEntity;
import com.solution.common.dao.BaseDao;

public interface AreaDao extends BaseDao<AreaEntity> {

    /**
     * 根据约束条件获取区域列表
     * @Title: getAreaList   
     * @Description:(描述)   
     * @param areaStr 区域编码拼接字符串，逗号分隔（320100,321010）
     * @param province 省
     * @param length 长度（以此限制索取区域级别，
     * 8  --省<br>
     * 15 --市<br>
     * 22 --区<br>
     * 25 --区(海南有几个特例，因此区最终取长度25)）<br>
     * 32 --街道<br>
     * @return List<AreaEntity>    
     * @author xu_cc  
     * @throws Exception exception
     * @Date 创建时间：2017年8月30日 下午4:24:50
     */
    List<AreaEntity> getAreaCheckList(Map<String, String> map);
    
	/**
	 * 查询区域
	 * @param map
	 * @return
	 * @exception/throws [异常类型][异常说明]
	 * @author diwankang
	 * @date 2017年4月10日 上午10:28:13
	 * @modify <scy> <2017年4月10日 上午10:28:13>
	 */
	List<AreaEntity> listArea(Map<String, Object> map);
		
	/**
	 * 获取指定区域下面的所有区域信息
	 * @param rootId
	 * @return
	 * @exception/throws [异常类型][异常说明]
	 * @author shanchuangye
	 * @date 2017年4月15日 下午2:23:34
	 * @modify <scy> <2017年4月15日 下午2:23:34>
	 */
	List<AreaEntity> listAreaTree(Long rootId);

	/**
	 * 一次性加载区域级别的数据
	 * @param param
	 * @return
	 */
	List<AreaEntity> listAreaForSelector(Map<String, Object> param);
	
}
